Lập trình máy tính Chương_trình_máy_tính

Lập trình máy tính là quá trình viết hoặc chỉnh sửa mã nguồn. Chỉnh sửa mã nguồn bao gồm kiểm tra, phân tích, tinh chỉnh và đôi khi phối hợp với các lập trình viên khác trong một chương trình được phát triển chung. Một người thực hành kỹ năng này được gọi là lập trình viên máy tính, nhà phát triển phần mềm và đôi khi là lập trình viên.

Quá trình đôi khi kéo dài của lập trình máy tính thường được gọi là phát triển phần mềm. Thuật ngữ công nghệ phần mềm đang trở nên phổ biến vì quy trình này được coi là một chuyên ngành kỹ thuật.

Ngôn ngữ lập trình

Một chương trình máy tính được viết theo phong cách lập trình câu lệnh

Các chương trình máy tính có thể được phân loại theo mô hình ngôn ngữ lập trình được sử dụng để sản xuất chúng. Hai trong số các mô hình chính là mệnh lệnhkhai báo.

Ngôn ngữ mệnh lệnh

Các ngôn ngữ lập trình mệnh lệnh xác định một thuật toán tuần tự bằng cách sử dụng các khai báo, biểu thức và câu lệnh:[19]

  • Một khai báo kết hợp một tên biến với một kiểu dữ liệu - ví dụ: var x: integer;
  • Một biểu thức mang lại một giá trị - ví dụ: 2 + 2 mang lại 4
  • Một câu lệnh có thể gán một biểu thức cho một biến hoặc sử dụng giá trị của một biến để thay đổi luồng điều khiển của chương trình - ví dụ: x  := 2 + 2; if x = 4 then do_something();

Một chỉ trích về ngôn ngữ mệnh lệnh là tác dụng phụ của câu lệnh gán trên một lớp biến được gọi là biến không cục bộ.[20]

Ngôn ngữ khai báo

Các ngôn ngữ lập trình khai báo mô tả những gì tính toán nên được thực hiện và không mô tả cách thức làm thế nào để tính toán nó. Các chương trình khai báo bỏ qua luồng điều khiển và được coi là tập hợp các lệnh. Hai loại ngôn ngữ khai báo rộng là ngôn ngữ chức năng và ngôn ngữ logic. Nguyên tắc đằng sau các ngôn ngữ chức năng (như Haskell) là không cho phép các hiệu ứng bên lề, điều này giúp dễ dàng lý luận về các chương trình như các hàm toán học.[20] Nguyên tắc đằng sau các ngôn ngữ logic (như Prolog) là xác định vấn đề cần giải quyết   - mục đích   - và để lại giải pháp chi tiết cho chính hệ thống Prolog.[21] Mục tiêu được xác định bằng cách cung cấp một danh sách các điểm phụ. Sau đó, mỗi subgoal được xác định bởi tiếp tục cung cấp một danh sách các subgoals của nó, vv Nếu một con đường subgoals thất bại trong việc tìm ra giải pháp, sau đó subgoal được quay lui và đường dẫn khác được thử mở ra một cách hệ thống.

Biên dịch và thông dịch

Một chương trình máy tính ở dạng ngôn ngữ lập trình máy tính mà người có thể đọc được được gọi là mã nguồn . Mã nguồn có thể được chuyển đổi thành một dạng thực thi nhờ một trình biên dịch hoặc trình lắp ráp hợp ngữ, hoặc thực hiện ngay lập tức với sự trợ giúp của một trình thông dịch .

Trình biên dịch được sử dụng để dịch mã nguồn từ ngôn ngữ lập trình sang mã đối tượng hoặc mã máy . [22] Mã đối tượng cần xử lý thêm để trở thành mã máy và mã máy bao gồm các lệnh gốc của đơn vị xử lý trung tâm, sẵn sàng để thực thi. Các chương trình máy tính được biên dịch thường được gọi là tệp thực thi, hình ảnh nhị phân hoặc đơn giản là tệp nhị phân   - một tham chiếu đến định dạng tệp nhị phân được sử dụng để lưu trữ mã thực thi.

Một số chương trình đối tượng được biên dịch và lắp ráp cần được kết hợp thành các mô-đun với tiện ích liên kết (linker) để tạo ra một chương trình thực thi.

Trình thông dịch được sử dụng để thực thi mã nguồn từ từng dòng ngôn ngữ lập trình. Trình thông dịch giải mã từng câu lệnh và thực hiện hành vi của nó. Một lợi thế của phiên dịch viên là họ có thể dễ dàng được mở rộng thành một phiên tương tác . Lập trình viên được trình bày với một dấu nhắc và các dòng mã riêng lẻ được nhập và thực hiện ngay lập tức.

Nhược điểm chính của trình thông dịch là chương trình máy tính chạy chậm hơn so với khi được biên dịch. Mã thông dịch chậm hơn vì trình thông dịch phải giải mã từng câu lệnh và sau đó thực hiện nó. Tuy nhiên, việc phát triển phần mềm có thể nhanh hơn khi sử dụng trình thông dịch vì việc kiểm tra là ngay lập tức khi bước biên dịch bị bỏ qua. Một nhược điểm khác của trình thông dịch là một trình thông dịch phải có mặt trên máy tính thực thi. Ngược lại, các chương trình máy tính được biên dịch không cần trình biên dịch trong quá trình thực thi.

Tài liệu tham khảo

WikiPedia: Chương_trình_máy_tính http://history-computer.com/ModernComputer/Relays/... http://gender.stanford.edu/news/2011/researcher-re... http://lambda.uta.edu/cse5317/notes/node3.html http://profs.scienze.univr.it/~manca/storia-inform... //dx.doi.org/10.1017%2FS1355771817000103 //www.worldcat.org/issn/1355-7718 https://archive.org/details/discretemathemat00rose... https://archive.org/details/eniac00scot/page/102 https://archive.org/details/eniac00scot/page/16 https://archive.org/details/structuredcomput00tane...